import  React,{AsyncStorage} from  'react-native';

class  KyAsyncStorage{
    /**
     * 获取
     * @param key
     * @returns {Promise.<TResult>}
     */
    static get(key){
        return AsyncStorage.getItem(key).then((value)=>{
            const  jsonValue = JSON.parse(value);
            return jsonValue;
        }).catch((error)=>{
            console.log(error);
        });
    }


    /**
     * 保存
     * @param key
     * @param value
     * @returns {*|Promise}
     */

    static save(key,value){
        return AsyncStorage.setItem(key,JSON.stringify(value));

    }

    /**
     * 更新
     * @param key
     * @param value
     * @returns {Promise.<TResult>|Promise.<*>|Promise.<U>|*}
     */
    static update(key, value) {
        return DeviceStorage.get(key).then((item) => {
            value = typeof value === 'string' ? value : Object.assign({}, item, value);
            return AsyncStorage.setItem(key, JSON.stringify(value));
        }).catch((error)=>{
            console.log(error);
        });
    }


    /**
     * 删除
     * @param key
     * @returns {*|Promise}
     */
    static delete(key) {
        return AsyncStorage.removeItem(key);
    }


}

export  default  KyAsyncStorage;

